package com.pine.dcts.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.pine.dcts.entity.BaseEntity;
import lombok.Data;


/**
 * 表字段
 *
 * @see java.sql.DatabaseMetaData getColumns
 */
@Data
@TableName("dep_field")
public class Field extends BaseEntity {
    /**
     * 字段id
     */

    @TableId(value = "field_id", type = IdType.AUTO)
    private Integer fieldId;

    /**
     * 表id
     */

    @TableField("table_id")
    private Integer tableId;

    /**
     * 数据源id
     */

    @TableField("ds_id")
    private Integer datasourceId;

    /**
     * catalog
     * TABLE_CAT
     */

    @TableField("catalog_name")
    private String catalogName;

    /**
     * schema
     * TABLE_SCHEM
     */

    @TableField("schema_name")
    private String schemaName;

    /**
     * 表名
     * TABLE_NAME
     */

    @TableField("table_name")
    private String tableName;

    /**
     * 列名
     * COLUMN_NAME
     */

    @TableField("column_name")
    private String columnName;
    /**
     * 数据库注释
     * REMARKS
     */
    @TableField("field_comment")
    private String fieldComment;

    /**
     * 字段在表定义中的列顺序位置 从1开始
     * ORDINAL_POSITION
     */
    @TableField("column_ordinal")
    private Integer ordinalPosition;

    /**
     * jdbc类型
     * DATA_TYPE
     *
     * @see java.sql.Types
     */
    @TableField("field_type")
    private Integer jdbcType;

    /**
     * 在SQL中的字段类型名
     * 如VARCHAR
     * TYPE_NAME
     */
    @TableField("type_name")
    private String sqlTypeName;

    /**
     * 字段长度或者 数值总位数
     * COLUMN_SIZE
     */
    @TableField("field_size")
    private Integer size;

    /**
     * 小数位数
     * DECIMAL_DIGITS
     */
    @TableField("field_digits")
    private Integer decimalDigits;

    /**
     * 是否可为空
     * NULLABLE
     */
    @TableField("nullable")
    private Boolean nullable;

    /**
     * 默认值
     * COLUMN_DEF
     */
    @TableField("default_val")
    private String defaultValue;

    /**
     * 是否自增
     * IS_AUTOINCREMENT
     */
    @TableField("is_auto")
    private Boolean autoincrement;

    /**
     * 是否是主键
     */
    @TableField("is_pk")
    private Boolean primaryKey;

}
